Assisting Program Analyses with Library Synopses
نویسنده
چکیده
Understanding a program based on its source code is tedious and error-prone. Unfortunately, such a task is often necessary due to lack of adequate documentation. To assist software engineers in this task, automated analysis tools are often used. Such tools analyze the program source, computing information, and present that information to the tool user in a useful way. To compute correct information, the entire program may need to be analyzed; however, most programs written today use libraries extensively, for which source code may not be available. Therefore, tools must somehow model the libraries to summarize their effects. However, such models are hard to construct by hand and are often tool-specific, limiting reuse. We present a general, automatable technique for generating models of libraries given their source. The resulting models are themselves pieces of source code called synopses. Synopses are more accurate than hand-generated models and are reusable across tools. Furthermore, the use of synopses can increase precision of subsequent analyses since they allow functions to be expanded inline, thereby gaining one level of precision with respect to calling context. Finally, synopses can be extended to entire software layers, improving the efficiency of analysis tools.
منابع مشابه
A Framework for the Physical Design Problem for Data Synopses
Maintaining statistics on multidimensional data distributions is crucial for predicting the run-time and result size of queries and data analysis tasks with acceptable accuracy. Applications of such predictions include traditional query optimization, priority management and resource scheduling for data mining tasks, as well as querying heterogeneous Web data sources with diverse information qua...
متن کاملSynopses reconciliation via calibration in the τ -Synopses system
The τ -Synopses system was designed to provide a run-time environment for multiple synopses. We focus on its utilization for synopses management in a single server. In this case, a critical function of the synopses management module is that of synopses reconciliation: given some limited memory space resource, determine which synopses to build and how to allocate the space among those synopses. ...
متن کاملτ -Synopses: A system for run-time management of remote synopses
τ -Synopses is a system designed to provide a run-time environment for remote execution of various synopses. It enables easy registration of new synopses from remote platforms, after which the system can manage these synopses, including triggering their construction, rebuild and update, and invoking them for approximate query processing. The system captures and analyzes query workloads, enablin...
متن کاملBug-Assist: Assisting Fault Localization in ANSI-C Programs
Bug-Assist takes as input an ANSI-C program annotated with assertions. Pdf A step by step instruction on how to install and use bug-assist through.We describe Bug-Assist, a tool that assists programmers localize error causes to a few lines of code. Bug-Assist takes as input an ANSI-C program annotated.We describe Bug-Assist, a tool that assists programmers localize error causes to a. We present...
متن کاملWorkload-Based Wavelet Synopses
This paper introduces workload-based wavelet synopses, which exploit query workload information to significantly boost accuracy in approximate query processing. We show that wavelet synopses can adapt effectively to workload information, and that they have significant advantages over previous approaches. An important aspect of our approach is optimizing synopses constructions toward error metri...
متن کامل